Methods of performing time-of-day synchronization in packet processing networks

ABSTRACT

Methods of performing time-of-day synchronization in a packet processing network include accumulating timestamps transmitted in packets between master and slave devices, which are synchronized to respective master and slave clocks and separated from each other by the packet processing network. Operations are also performed to determine whether first timestamps accumulated in a first direction across the packet network demonstrate that a first packet delay variation (PDV) sequence observed from the first timestamps is stationary. A phase offset between the master and slave clocks is then adjusted using a time-of-day (ToD) estimation algorithm. This adjusting can include evaluating a location-dependent statistic of the first PDV sequence.

REFERENCE TO RELATED APPLICATIONS

This application is related to commonly assigned U.S. application Ser. No. 13/799,086, filed Mar. 13, 2013, entitled “Methods of Packet-Based Synchronization in Non-Stationary Network Environments;” Ser. No. 13/799,194, filed Mar. 13, 2013, entitled “Methods of Estimating Frequency Skew in Networks Using Timestamped Packets;” and Ser. No. 14/015,573, filed Aug. 30, 2013, entitled “Methods of Performing Packet-Based M-Estimation of Clock Frequency Skew in Network Environments,” the disclosures of which are hereby incorporated herein by reference.

FIELD OF THE INVENTION

The present invention relates to integrated circuit systems and, more particularly, to packet processing networks and methods of operating packet processing networks.

BACKGROUND OF THE INVENTION

Clock synchronization in geographically separated devices is an important problem in a wide range of applications ranging from telecommunications to industrial automation. Due to imperfections in clock oscillators and variations in environmental conditions, individual clocks in networked systems invariably drift from one another. One proposed solution to clock drift includes using packet-based methods to synchronize multiple clocks within a network. As shown by FIG. 1, a reference or master clock may be coupled to a slave clock, which must synchronize to the master clock using information transported via an arbitrary packet network. These packet-based methods may utilize timing observations recorded in special packets. For example, according to the IEEE 1588 protocol, timing observations may be made available by two-way exchanges of special “timestamped” packets that are synchronized to a master clock and one or more slave clocks, which must all synchronize to the master clock. While this communication protocol, including the way that timestamped packets are exchanged, is well defined by the IEEE 1588 standard, the actual phase and frequency estimation tasks are only presented for elementary cases (e.g., perfectly symmetrical and fixed transit delay between master and slave devices). The problem of tracking a Master clock over a non-1588 aware network and exhibiting multiple hops and non-stationary traffic, is a challenging problem. In addition to the possible large network packet-delay variation, the clocks themselves typically drift from one another over time, due to imperfections in clock oscillators and variations in environmental conditions. Adding to the complexity of the problem, it is important to achieve synchronization in a timely manner, for many practical reasons, including telecommunication operators' ease of use.

As illustrated by FIG. 2, in one round of two-way exchanges between a master device (“Master”) and a particular slave device (“Slave”), the Master first sends the Slave a packet containing its most accurate reading of the packet departure time T₁. The Slave notes in time T₂ the reception time of the packet (according to its own slave clock). After an arbitrary amount of time, the Slave responds to the Master with a packet departing at time T₃, which the Master stamps at arrival time T₄. A packet containing the value of T₄ is then sent back to the Slave to complete the exchange. This process may be repeated multiple times, with the variable k indexing N exchange rounds. Accordingly, the Slave may accumulate a set {T₁(k), T₂(k), T₃(k), T₄(k)}_(k=1) ^(N) of timestamps, from which it must extract information to synchronize to the master clock. As further illustrated by FIG. 2, clock synchronization techniques may also be devised for one-way message dissemination mechanisms.

The information to be extracted can be separated into two components: frequency and time/phase (or ToD for Time-of-Day). Frequency synchronization, or “syntonization”, refers to the adjustment of two electronic circuits or devices to operate at the same frequency so that the frequency skew, which is defined as a ratio between Master and Slave frequencies, approaches unity. Relatively few prior art publications address techniques to estimate frequency differences between Master and Slaves, as opposed to estimating the time/phase offset between their clocks. A survey of some recent estimation techniques is provided in an article by III-Keun Rhee et al., entitled “Clock Synchronization in Wireless Sensor Networks: An Overview,” Sensors, Vol. 9 (2009). Additional estimation techniques are disclosed in an article by Kyoung-Lae Noh et al., entitled “Novel Clock Phase Offset and Skew Estimation Using Two-Way Timing Message Exchanges for Wireless Sensor Networks,” IEEE Transactions on Communications, Vol. 55, No. 4, April (2007); and in J. Elson et al., entitled “Fine-grained Network Time Synchronization Using Reference Broadcasts,” Proceedings of the Fifth Symposium on Operating System Design and Implementation, Boston, Mass., December (2002).

One of the most significant applications (in terms of market size) for frequency synchronization is that of mobile base station synchronization. Mobile networks using standards such as GSM, UMTS or LTE all require that each Slave base station is disciplined so as to maintain a certain maximum frequency difference from the Master base station. Typically, the maximum frequency difference must be constrained to an accuracy of ±50 parts per billion (or ppb), so that a frequency ratio between the Master and Slave clocks must be within 1±50×10⁻⁹ at the air interface.

A variety of techniques exist for the estimation of frequency skew a for one-way transmissions of timestamps. Due to its simplicity and computational efficiency, one of the most popular techniques consists in using a least-squares linear regression. The resulting Least-Squares (LS) estimate typically coincides with a maximum-likelihood estimate under the assumptions that the packet delay noise is composed of Gaussian independent and identically-distributed random variables. LS-based estimates, which can be fairly robust to Gaussian-like stationary components in the noise process (even with large variance), are also permutation-invariant and robust to packet loss. LS-based estimates will also be accurate provided that the noise-free relationship between T₁(k) and T₂(k) is indeed linear, and especially provided the packet delay noise does not contain significant “spikes,” which creates outliers. The first condition is relatively simple to satisfy if the observation window length is not too long (i.e. there is no significant drift in the master clock frequency over the observation period). However, the second condition is less likely. For example, in low- to mid-range traffic load disturbances, the noise is far from Gaussian distributed, to the point that the LS estimate may become meaningless. In non-symmetric (non-zero mean included), multi-modal noise statistics, the LS estimate can also be extremely poor.

As disclosed in U.S. Pat. No. 7,051,246 to Benesty, entitled “Method for Estimating Clock Skew Within a Communications Network,” recursive and sequential algorithms such as the Kalman Filter algorithm have also been used to estimate clock skew. However, as described by the '246 patent, the packetization period (i.e., the packet rate of the Master) is considered fixed and ideally accurate, which may not be easy to guarantee in all situations. In addition, U.S. Pat. No. 7,257,133 of Jeske et al., entitled “Method for Estimating Offset For Clocks At Network Elements,” discloses a sufficient statistic (SS) estimator, which may operate as a minimum variance estimator within a class of linear unbiased estimators based on ordered one-way delay measurements.

Additional skew estimating techniques may be based on statistical assumptions and Maximum-Likelihood Estimators (MLE) may be derived accordingly, both in one- and two-way mechanisms contexts. These solutions can be relatively well-performing in relatively low noise conditions, but struggle in more noisy situations. With an exponential distribution assumption for the packet delay noise, the MLE for the skew in a one-way mechanism has also been found to coincide with the solution of a linear programming problem, yielding an estimate that is overall fairly robust and efficient, but may be relatively sensitive to certain types of non-exponential noise (e.g. to Gaussian-like noise). Other algorithms include Paxson's Estimator and the Piecewise Minimum Estimator. Paxson's estimator (devised for one-way data only) partitions the timestamps into non-overlapping subsets, and then uses a Theil-Sen slope estimator on the points corresponding to the minimum delays of all the subsets. This estimator can be fairly robust but typically has certain flaws. First, for large data sets, it can be computationally expensive. Second, for large initial skews, the minima will be biased towards the first or last data points within the timestamps subsets. Moreover, Paxson's estimator, like the Linear Programming algorithm, is not robust to additive Gaussian-like noise. Finally, the Piecewise Minimum Estimator also partitions the stamps into non-overlapping subsets, but then simply connects the minima to form a possibly non-straight line. Notwithstanding these techniques, there continues to be a need for frequency skew estimators that can produce accurate results regardless of the type of packet delay variation statistics (e.g., exponential, Gaussian, skewed, multi-modal, etc.) and approaches the performance of a least-squares (LS) estimator for purely Gaussian noise or Paxson's estimator for purely exponential-noise. There also continues to be a need for techniques that provide skew and/or phase algorithms capable of achieving and maintaining synchronization over arbitrary and possibly changing network traffic, in a well-defined and short period of time (e.g., by minimizing the required N exchange rounds). Finally, there is a need for time-of-day (ToD) synchronization techniques that support precise and controlled phase adjustments (so as maintain low timing errors) and are robust to packet delay variation (PDV) sequence changes.

SUMMARY OF THE INVENTION

According to some embodiments of the invention, methods of performing time-of-day synchronization in a packet processing network can include accumulating timestamps transmitted in packets between master and slave devices, which are synchronized with respective master and slave clocks and separated from each other by the packet processing network. Operations are further performed to determine whether first timestamps accumulated in a first direction across the packet network demonstrate that a first packet delay variation (PDV) sequence observed from the first timestamps is stationary. A phase offset between the master and slave clocks can then be adjusted using a time-of-day estimation algorithm. This adjusting operation may include estimating a probability density function of the first PDV sequence up to translation.

According to additional embodiments of the invention, a method of performing time-of-day synchronization in a packet processing network may include: (i) determining whether first timestamps accumulated in a first direction across the packet network demonstrate that a first packet delay variation (PDV) sequence observed from the first timestamps is stationary; and then (ii) adjusting a phase offset between master and slave clocks using a time-of-day estimation algorithm, which may be selected in response to determining a location-dependent statistic of the first PDV sequence. This location-dependent statistic may be selected from a group consisting of mean, minimum, maximum and mode, for example. Still further operations may include comparing a distribution of the first PDV sequence against distributions associated with a library of stored PDV sequences to determine a match therebetween. This comparing may include determining a distance between a signature vector associated with the first PDV sequence and at least one signature vector associated with a stored PDV sequence in the library. The comparing may also include determining a location-independent statistic of the first PDV sequence, such as: (i) the standard deviation, (ii) the variance, (iii) the mean absolute deviation from the mean, (iv) the skewness (e.g., the third standardized moment), which can be shown to be also independent of the frequency skew as described herein, (v) the full empirical discrete probability density function (e.g., constructed from a histogram with a predefined amount of bins, and normalized such that the first bin begins at 0), and (vi) the kurtosis.

Methods of performing time-of-day synchronization in packet processing networks according to still further embodiments of the invention can include accumulating timestamps transmitted in packets between master and slave devices, which are synchronized with respective master and slave clocks. Operations are then performed to determine first and second distributions from respective first and second packet delay variation (PDV) sequences, which are associated with first and second pluralities of the timestamps transmitted across the packet network and collected during respective first and second non-overlapping time intervals. A phase offset between the master and slave clocks is then adjusted in response to determining a magnitude of drift between a second probability density function (PDF) associated with the second distribution and a first PDF associated with the first distribution. According to additional embodiments of the invention, a phase offset between the master and slave clocks may be adjusted in response to determining a difference in location between a distribution of the first PDV sequence and a distribution of the second PDV sequence. According to still further embodiments of the invention, a phase offset between the master and slave clocks may be adjusted in response to comparing statistical distributions of two distinct windows of the accumulated timestamps collected at different times to determine a difference in location therebetween. The types of statistical distributions of the two distinct windows of the accumulated timestamps being compared can be equivalent.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic of a packet processing network containing a master device (with master clock) coupled to a slave device (with slave clock), according to the prior art.

FIG. 2 illustrates timestamp accumulation in response to one-way and two-way packet exchanges, with the arrows in the middle of each diagram representing traveling packets, which are timestamped upon departure or arrival.

FIG. 3 is a graph of raw input differences between T₂(k) and T₁(k) sequences of timestamps. In this situation, the initial skew is about −107 ppb. The values on the y-axis reflect the fact that the Master and Slave time-of-day (TOD) offsets are off by nearly 1000 seconds, which can be much larger in typical applications.

FIG. 4 is a graph of the data illustrated in FIG. 3, but after pre-normalization.

FIG. 5 is a graph of the data illustrated in FIG. 4, but after being “flattened” by a plain Least-Squares method as shown in Equation (8), to obtain the sequence n(k)=y(k)−{circumflex over (σ)}₀x(k).

FIG. 6 is a duplicate of the graph of FIG. 5, but with highlighting (i.e., dots) that correspond to the points in FIG. 5 that fall within a predetermined region (e.g., 1/75 of the range of the input) from the detected mode of the empirical distribution.

FIG. 7 is a duplicate of the graph of FIG. 6, but with a line determined by applying a slope estimator (e.g., LS method) to the highlighted points.

FIG. 8 is a graph showing the pattern of PDV statistics that are distributed according to a Gamma random process.

FIG. 9 is a graph showing a stationary PDV sequence observed through its translated and skewed version n(k)=T₂(k)−T₁(k). The value of S from Equation (10) herein is approximately 0.99 (i.e., very close to 1 as expected from a stationary sequence).

FIG. 10 is a graph showing a non-stationary PDV sequence observed through n(k). In this case, there is still a skew, but about halfway through the PDV's variance is increased. The value of S is about 0.26, confirming nonstationarity.

FIG. 11 is a graph showing a non-stationary PDV sequence observed through n(k). In this case, a relatively smaller increase is artificially introduced around sequence index 200. Nonstationarity can be detected with

equal to 0.60.

FIG. 12 is a graph showing Jensen-Shannon Divergence versus tested value of the frequency skew. In this case, Gaussian PDV was artificially added, to the timestamps, with a true skew of 500 parts-per-million (a value of 1.0005). The JSD is calculated using Kernel-smoothed empirical probability density functions. From a distance, it appears that the JSD does pinpoint fairly well the true skew. But FIG. 13 shows why this is not sufficient.

FIG. 13 is a graph showing how the valley in FIG. 12 looks like up close. While the true skew is at −500, if the JSD is to be trusted the value that minimizes the distance between the empirical PDFs of the two segments' PDV is about −499.51 (i.e., at more than 1.5 parts-per-million away), which is not acceptable for skew estimators.

FIG. 14 is a graph showing superimposed histograms. One of the histograms is from a true PDF sequence and the other histogram is one is extracted using a gross skew error. The respective minimum values were subtracted from each sequence before plotting to emphasize on the similarity between the two distributions.

FIG. 15 shows a 2-variable curve obtained using a method of choosing a most appropriate algorithm, which maps a set of two statistical parameters to a prescribed window length guaranteeing a desired performance. Simple function-learning algorithms (e.g., Levenberg-Marquardt applied to neural networks) can achieve very good results with such curves, with maximum error at the training points of less than 0.1.

FIG. 16 is a flowchart that illustrates methods of packet-based synchronization in non-stationary network environments, according to embodiments of the present invention.

FIG. 17 is a graph that illustrates the effects of normalization performed on a sequence of packets in accordance with Equation (13).

FIG. 18 is a graph illustrating an Exponential-Gaussian mixture with “half and half” proportions. For illustrative purposes, this mixture has a location at zero, but in practice only translated versions of it will be observed.

FIGS. 19-20 are graphs that illustrate the effects of timestamp preprocessing (“unskewing) on the first 5000 timestamps collected in a 10-hop network with 80% traffic load in a downlink direction (FIG. 19) and 20% traffic load in an uplink direction (FIG. 20), where the initial skew was 250 ppb.

FIG. 21 is an example of a time error graph with a servo using a continuous ToD/phase drift.

DETAILED DESCRIPTION OF EMBODIMENTS

The present invention now will be described more fully with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like reference numerals refer to like elements throughout.

It will be understood that, although the terms first, second, third, etc. may be used herein to describe various elements, components, regions, layers and/or sections, these elements, components, regions, layers and/or sections should not be limited by these terms. These terms are only used to distinguish one element, component, region, layer or section from another region, layer or section. Thus, a first element, component, region, layer or section discussed below could be termed a second element, component, region, layer or section without departing from the teachings of the present invention.

The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the present invention. As used herein, the singular forms “a,” “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprising”, “including”, “having” and variants thereof, when used in this specification, specify the presence of stated features, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, steps, operations, elements, components, and/or groups thereof. In contrast, the term “consisting of” when used in this specification, specifies the stated features, steps, operations, elements, and/or components, and precludes additional features, steps, operations, elements and/or components.

Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.

Methods of estimating frequency skew according to embodiments of the invention are described more fully hereinbelow with respect to FIGS. 3-8. According to some of these embodiments of the invention, a method of estimating frequency skew utilizes a Least-Squares on the Mode (LSM) technique, which includes generating an initial estimate of frequency skew (e.g., {circumflex over (σ)}₀) from timestamps transmitted in packets between master and slave devices. These master and slave devices have respective clocks that synchronize operations therein. The timestamps and the initial estimate of the frequency skew can then be used to generate a representation of a packet delay variation (PDV) sequence. A statistical characterization of the representation of the PDV sequence is made. In some embodiments of the invention, this statistical characterization may be a probability density function (PDF). Operations are then performed to extract a mode (e.g., largest mode) from the statistical characterization and determine indices of a plurality of points in the representation of the PDV sequence that are within a range of the extracted mode. Thereafter, an updated estimate of the frequency skew is generated by determining a slope between the timestamps at the determined indices.

As will be understood by those skilled in the art, individual clocks may be identified to functions C of universal, absolute time t. Assuming C_(M) and C_(S) represent the Master and Slave clocks associated with Master and Slave devices, respectively, which are separated by a packet network, then these two clocks can be assumed to be related by the following equation: C _(S)(t)=σC _(M)(t)+δ  (1) where σ and δ represent the frequency skew and phase offset of the Slave clock relative to the Master clock. Although the parameters σ and δ may be time-variable, they can be assumed to be constant (or at least nearly constant) over a certain observation window (typically less than a minute). Assuming a two-way message exchange of FIG. 2 (i.e., Master→Slave and Slave→Master), the timestamps at round k can be treated as related according to the following equations: T ₂(k)=σ(T ₁(k)+τ_(MS)(k))+δ  (2)

$\begin{matrix} {{T_{4}(k)} = {\frac{{T_{3}(k)} - \delta}{\sigma} + {\tau_{SM}(k)}}} & (3) \end{matrix}$ where T_(MS)(k) and τ_(SM)(k) represent the packet transfer times from Master to Slave and Slave to Master at round k.

It is mathematically convenient to assume that the packet transfer time is composed of the sum of a fixed (and symmetrical) delay τ and additional random delays: τ_(MS)(k)=τ+n _(MS)(k)  (4) τ_(SM)(k)=τ+n _(SM)(k)  (5) where the random additional components n_(MS)(k), n_(SM)(k) may be distinctly distributed, probabilistically speaking. These quantities are also often referred to as the PDV, for Packet Delay Variation. Assuming N rounds of two-way message exchanges, the goal is now simply to estimate the skew a given {T₁(k), T₂(k), T₃(k), T₄(k)}_(k=1) ^(N). However, for one-way message passing, the available data to estimate σ consists of {T₁(k), T₂(k)}_(k=1) ^(N).

The information provided by the timestamps T₁(k) and T₂(k) can be used to estimate the frequency skew. To support an understanding of these operations, Equation 2 can be rewritten as follows: T ₂(k)=σT ₁(k)+στ+δ+σn _(MS)(k)  (6) As will be understood by those skilled in the art, the timestamps T₁(k) and/or T₂(k) are likely to be very large numbers (e.g., >10⁹ in Unix time), whereas other quantities within Equation (6) may be close to 1 or 0. In these situations, during a reasonable observation window length of about 5 minutes, for example, the timestamps will only change by about 15 μsec assuming a maximum allowable frequency offset of about 50 ppb. The estimation problem may therefore be ill-conditioned. To circumvent this issue, operations can be performed to “normalize” the timestamps by arbitrary quantities as in the following example: let y(k)=T₂(k)−└T₂(0)┘ and x(k)=T₁(k)−└T₁(0)┘. Doing this will not mathematically change how the skew is estimated, but it will change how it is numerically calculated. The choice of the integer part of the timestamps is mostly a matter of convenience, but the subtracted value should be significant enough that y(k) and x(k) are both in the same range of much more “manageable” numbers. With these new variables, the following relationship can be provided: y(k)=σx(k)+β+σn _(MS)(k)  (7) where β=στ+δ+σ└T₁(0)┘−└T₂(0)┘.

After this pre-normalization, the second proposed operation consists of obtaining a rough initial guess {circumflex over (σ)}₀ for the frequency skew (for example, {circumflex over (σ)}₀ may be obtained via a plain Least-Squares algorithm). After defining the sequence n(k)=y(k)−{circumflex over (σ)}₀x(k) (which may be interpreted as a representation of the PDV sequence), a statistical analysis of n(k) is carried out to determine its empirical Probability Density Function (PDF). The largest mode can then be extracted from the PDF, and the indices of the M points that fall within a specified region around (e.g., above and below) the extracted mode support can be recorded as {k_(m)}_(m=1) ^(M). An additional operation can then be performed to apply an arbitrary slope estimation algorithm on the decimated sequence {n(k_(m))}_(m=1) ^(M). This operation is called the Least-Squares on the Mode (LSM). As disclosed in U.S. Provisional Application Ser. No. 61/710,553, filed Oct. 5, 2012, entitled “Packet-Based M-Estimation of Clock Frequency Skew,” alternative robust estimators may be used as substitutes for the LSM.

These above-described operations are further illustrated by FIGS. 3-7 for measured Gaussian-type PDV statistics. In these exemplary operations, the initial rough estimate for the skew is obtained via a simple Least-Squares algorithm via the following formula:

$\begin{matrix} {{\hat{\sigma}}_{0} = \frac{{N{\sum\limits_{k = 0}^{N - 1}{{x(k)}{y(k)}}}} - {\sum\limits_{k = 0}^{N - 1}{{x(k)}{\sum\limits_{k = 0}^{N - 1}{y(k)}}}}}{{N{\sum\limits_{k = 0}^{N - 1}{x^{2}(k)}}} - \left( {\sum\limits_{k = 0}^{N - 1}{x(k)}} \right)^{2}}} & (8) \end{matrix}$ In the embodiments of FIGS. 3-7, a conventional LS method would give an error of 3 parts-per-billion (ppb), whereas the proposed LSM method yields an error of 5 ppb, which is comparable to the LS method. In contrast, a minimum-based method such as Paxson's method or the Linear Programming solution will likely struggle with these type of noise statistics, as the minima do not follow the trend in data and are rarely reached by the PDV. In fact, Paxson's estimate yields an error of approximately 85 ppb in the above case.

Advantageously, the LSM method is unchanged if the one-way direction considered is from Slave to Master (i.e., if we are considering the timestamp dataset formed by T₃(k) and T₄(k)). In contrast, a conventional block minimum method or LP method must be modified when considering another one-way direction.

Thus, as described above, an LSM estimate of frequency skew can be obtained by initially pre-normalizing T₁(k) and T₂(k) to promote numerical stability, which yields x(k) and y(k) as normalized sequences, where y(k)=T₂(k)−└T₂(0)┘ and x(k)=T₁(k)−└T₁(0)┘. Following this, an initial “rough” estimate {circumflex over (σ)}₀ for the frequency skew is determined and used to define n(k)=y(k)−{circumflex over (σ)}₀x(k), which may be interpreted as a representation of a packet delay variation (PDV) sequence. This rough estimate can be obtained by a simple linear regression algorithm such as the Least-Squares algorithm. An empirical Probability Density Function (PDF) for n(k) is then obtained (e.g., by histogram decomposition, kernel smoothing, etc). A mode (e.g., largest mode) is then extracted from the empirical PDF and indices of M points in n(k) that fall within a predetermined region around the detected mode are recorded as {k_(m)}_(m=1) ^(M). Operations are then performed to estimate the slope between x(k_(m)) and y(k_(m)) for indices from m=1 to M, and use this estimated slope as the updated estimate of frequency skew. As will be understood by those skilled in the art, the slope can be estimated using a conventional Least-Squares method, for example.

This LSM method can be extended to handle two-way data to achieve increased accuracy and robustness regardless of the statistics of the PDV and the fact that the PDF in each direction may be different. According to the two-way LSM method, a pre-normalization of {T₁(k), T₂(k), T₃(k), T₄(k)}_(k=1) ^(N) is performed. In addition to x(k) and y(k), the sequences v(k)=T₃(k)−└T₃(0)┘ and u(k)=T₄(k)−└T₄(0)┘ are determined. A rough initial estimate {circumflex over (σ)}₀ for the frequency skew is determined so that the sequences n(k)=y(k)−{circumflex over (σ)}₀x(k) and r(k)=u(k)−{circumflex over (σ)}₀v(k) can be determined. Thereafter, as described above, the modes of the sequences n(k) and r(k) are determined and the indices of the points which fall within a pre-defined region of each mode are separately recorded. Then, a two-way method is used to estimate the skew based on the set of modal values. An exemplary two-way method may include using the two-way LS or IRLS methods, which are described more fully in the aforementioned U.S. Provisional Application Ser. No. 61/710,553, filed Oct. 5, 2012.

Although not wishing to be bound by any theory, it is believed that the LSM estimates described herein will still perform very well in an Exponential-like PDV setting, since this type of distribution typically exhibits a clear mode. Moreover, even when a more arbitrary PDV distribution is present, the LSM method can perform better than other algorithms. For example, if it is assumed that the PDV statistics are distributed according to a Gamma random process, as shown in FIG. 8, the initial estimate {circumflex over (σ)}₀ may be calculated via a Least-Squares algorithm, and the mode may be computed from a histogram analysis of the sequence n(k) using 30 bins. These bins, which correspond to equally separated intervals between the minimum and maximum observed values of n, allow for the creation of a histogram by counting how many points fall within each interval. From a large initial clock skew of about 131 parts per million, the conventional LS algorithm will yield an output error of 23 ppb, a linear programming algorithm will yield an output error of 177 ppb and the LSM method will yield an error of 11 ppb. An iterative extension is also possible, in which the region around the detected mode progressively shrinks, and the LSM is applied iteratively. This iterative-version of the LSM method includes computing {circumflex over (σ)} on the selected points, and reducing the width of the “modal region.” Let n(k)=y(k)−{circumflex over (σ)}x(k) and extract its mode, and then go to unity until an arbitrary criterion is met. For example, reductions in the width of the modal region may be stopped after a fixed number of iterations, or after the estimated slope does not change by more than 10 percent. The reduction of the region around the mode can be done by increasing the number of bins in a histogram analysis. This method further increases the performance of the method in a number of cases. The stopping criterion may be a fixed amount of iterations or a small detected change of slope.

The embodiments described herein provide a method of performing clock skew estimation based on a set of modal points extracted from an estimated empirical probability density function for the PDV. While the “Least-Squares on the Mode” (or LSM) method may not always be quite as accurate as other techniques in their respective range of operation (e.g., the Least-Squares solution in a Gaussian setting), it has the significant advantage of being able to perform relatively well regardless of the presented PDV, which may be arbitrary and unknown, as long as a certain mode is present.

As described hereinabove, information to be extracted from the timestamps generated by the packet network can be separated into at least two components: frequency skew estimation and time/phase offset estimation. Frequency skew estimation, which relates to a ratio between the frequencies of the Master and Slave clocks, may be interchanged with frequency estimation. In addition, the methods described hereinabove may be further expanded to adaptively provide skew and/or phase algorithms that are capable of achieving (and maintaining) synchronization over arbitrary and possibly changing traffic within the packet network, in a well-defined and short period of time (i.e., minimizing the required N exchange rounds). These additional methods do not promote any particular frequency and/or phase estimation algorithm, but rather manage multiple algorithms so as to achieve high levels of synchronization in the packet network, notwithstanding the arbitrary and changing traffic environments for network packets. In other words, the “management methods” that will now be described avoid the conventional methods whereby certain known and fixed network conditions are assumed, and the problems of (i) the smallest possible N until synchronization; and (ii) network traffic changes, are ignored.

The adaptive methods described hereinbelow strive to provide the most “appropriate” frequency and/or phase algorithm “given the circumstances.” An algorithm is defined as “appropriate” for an observation length N if it guarantees an estimation error that lies below an acceptable error (as specified by arbitrary criteria) given a certain set of PDV circumstances. The degree of “appropriateness” is ordered by the integer N as follows: one algorithm is more appropriate than another algorithm if it is “appropriate” for a smaller N relative to the other algorithm. An algorithm is the most appropriate among a set of estimation algorithms if it is appropriate for the smallest N of all algorithms considered.

Next, the “circumstances” are tied to the observed Packet Delay Variations (PDV), and in the method are strictly related to the observed PDV statistics (rather than to the particular PDV sequence). In other words, a certain “set of circumstances” is seen hereafter as a certain type of PDV statistics.

In particular, the synchronization method described herein repeatedly adapts to changing network conditions as timestamps are acquired. In some embodiments of the method, new timestamps are acquired until enough have been accumulated for PDV statistics estimation (or at least for stationarity checking) in either one direction (e.g., master→slave or slave→master) or both directions. Then, operations are performed to verify that the PDV sequence observed is stationary (in at least one direction). If it is not, timestamps continue to be acquired before another check is performed. However, if it is, the most appropriate algorithm given the PDV circumstances is determined, along with the value of N (and the direction chosen, if not both). Thereafter, operations are performed to acquire timestamps while periodically verifying that the PDV sequence is still stationary, until N timestamps have been collected in the selected direction. Finally, the most appropriate algorithm is used to determine the frequency skew or phase correction.

The synchronization method assumes that it is possible to check for the stationarity of the PDV sequence, but the checking operations may be complex because the frequency skew may be completely arbitrary in some networks. Nonetheless, checking for stationarity may be achieved using, among other things, location-independent statistics. For example, suppose that the minimum amount of timestamps for a stationarity check is set to M. Then, the sequence n(k)=T₂(k)−T₁(k) can always be viewed as a skewed and translated version of the true PDV sequence. The first step consists of segmenting the sequence n(k) into two non-overlapping segments n₁(k) and n₂(k) of length M/2. The method further includes comparing location-independent statistics between the two segments, which amounts to performing skew-independent statistical comparisons. In fact, if the true PDV sequences contained in the two subsegments n₁(k) and n₂(k) are from the same arbitrary statistical distribution (i.e. if the PDV is stationary), then the measured distributions of n₁(k) and n₂(k) should be identical up to translation.

The ratio of central moments between the first and second segments satisfy the above location-independent criteria. Combinations of central moments of different orders can be used as well. In order to “standardize” the comparison process, the sequence n(k) is normalized as follows:

$\begin{matrix} {{\overset{\_}{n}(k)} = \frac{n(k)}{{n(k)}}} & (9) \end{matrix}$ from which n₁(k) and n₂(k) are then extracted. The following moment-based “stationarity score” is used:

$\begin{matrix} {S = {\frac{1}{2}\left( {\frac{m\left( {{n_{1}(k)},2} \right)}{m\left( {{n_{2}(k)},2} \right)} + \sqrt{\frac{m\left( {{n_{1}(k)},4} \right)}{m\left( {{n_{2}(k)},4} \right)}}} \right)}} & (10) \end{matrix}$ where m(x(k),q)=E[(x(k)−E(x(k)))^(q)] and E denotes statistical expectation.

This stationarity score S has several advantages. First, it uses higher-order statistics (which are often better distribution differentiators than first or second order statistics). Second, a value in the vicinity of unity indicates stationarity—the further away from unity, the lower the likelihood the PDV is stationary. Third, the score is independent of the skew.

FIGS. 9-11 illustrate this technique for different cases. FIG. 9 illustrates a stationary PDV sequence observed through its translated and skewed version n(k)=T2k−T1k. The value of S from Equation (10) is approximately 0.99 (i.e., very close to unity as expected from a stationary sequence. FIG. 10 illustrates a non-stationary PDV sequence observed through n(k). In this situation there is still a skew, but about halfway through, the PDV's variance is increased. This time, the value of S is about 0.26, confirming nonstationarity. In FIG. 11, a non-stationary PDV sequence is observed through n(k). In this case, a relatively smaller increase is artificially introduced around sequence index 200. Still, the proposed method is able to detect nonstationarity with S equal to 0.60. Heuristically, a certain radius around unity can easily be tuned to the desired sensitivity.

Another technique for checking for stationarity is more complex and utilizes a probability density function (PDF) to extract an estimate for the PDV sequence. Assume, again, that the minimum amount of timestamps for a stationarity check is set to M. This time, the following sequence is evaluated: n(k,σ)=T ₁(k)−σT ₂(k)  (11) Once again, this sequence is segmented into two segments n₁(k, σ) and n₂(k, σ) of length M/2. This technique consists of finding the value of σ that minimizes a certain distance between the empirical probability density functions P_(n) ₁ and P_(n) ₂ of n₁(k, σ) and n₂(k, σ). If this distance is treated as D(P_(n) ₁ ∥P_(n) ₂ ) then the problem can be rewritten as: Find {circumflex over (σ)}=argmin_(σ) D(P _(n) ₁ ∥P _(n) ₂ )  (12) The distance between the two empirical PDFs can be arbitrary, although good choices include the Jensen-Shannon Divergence (JSD) or the Kullback-Leibler Divergence (KLD). This problem can be solved using techniques such as the golden-section search algorithm, since it can be expected that a will be bounded around unity. As a byproduct, this technique also yields an estimate for the frequency skew σ, but it is usually not precise enough and this technique should not be used strictly to estimate the skew, as explained more fully hereinbelow. However, the minimum value of D(P_(n) ₁ ∥P_(n) ₂ ) is what is desired. There are multiple implications of this technique. First, the minimum value D(P_(n) ₁ ∥P_(n) ₂ ) found with the above technique is an indication of stationarity. For example, if the resulting distance is close to 0, it can be concluded that the PDV statistics are stationary. On the other hand, if the minimum possible distance found is larger than a preset threshold (e.g. the JSD ranges from 0 to 1, and in one of the embodiments a value of 0.15 is chosen as a threshold), then the PDV statistics are likely nonstationary. Second, there are multiple ways of obtaining the empirical distributions P_(n) ₁ and P_(n) ₂ , including using normalized histograms or Kernel smoothing techniques. One of the disadvantages is that with normalized histograms, the right number of bins must be chosen—similarly with Kernel smoothing the right bandwidth must be chosen as well.

Thus, this latter technique is not recommended strictly for frequency skew estimation, because while it does converge near the true value, it is not as precise as other dedicated skew estimators. FIGS. 12-13 illustrate this conclusion in an example, and more explanations about why this is the case will be explained below. Nonetheless, a significant overall advantage of this technique is that it extracts an estimate for the PDV sequence n(k, σ)=T₁(k)−σT₂(k) and works completely independently of the PDV statistics.

Once it has been established that the PDV statistics are stationary, the next step consists of appropriately modeling these statistics, to determine the most likely statistical model to which the PDV belongs. Relevant statistical models such as Gaussian, Exponential, Weibull, or Gamma distributions can be used, however, additional models can be used as well and the use of a relatively large number of models increases the chances of recognizing the PDV statistics.

To achieve the goals described herein, it is important to extract an approximation of a sample PDV sequence (unless this has already been done during the stationarity check). If a solution such as the one described above with respect to Equations 9-10 is used instead, an estimate of the PDV sequence can be obtained by applying a plain/simple frequency skew estimation algorithm (such as the Least-Squares algorithm) and then extracting n(k, σ)=T₁(k)−σT₂(k) as the (translated) PDV sequence estimate. At first glance, this might appear to be a “circular solution” in which (i) an estimate for the frequency skew is used to (ii) extract the PDV sequence, which will finally be used to (iii) find an estimate for the frequency skew. The important point to note is that the initial value of a obtained with the plain/simple algorithm in (i) does not need to be accurate for a satisfactory PDV statistics modeling to occur. The main reason for this is that the PDV's level is either high enough that the effect of the skew is “statistically masked”, or low enough that the plain/simple skew estimation algorithm will correct it accurately. The end result is that the practical PDV sequence obtained by this method is accurate enough for modeling purposes.

FIG. 14 shows two superimposed histograms respectively capturing two estimated PDV sequences with the same amount of bins, but with one of them calculated with a skew error of 200 parts-per-billion, which can be considered as a gross error by many telecommunications standards. Practically speaking, testing these two histograms for certain statistical models will yield essentially identical results. The reader will have noted that this “statistical masking” is directly related to why using the technique shown above with respect to Equations 11-12 is typically not sufficient to determine the skew accurately. Consider, for example, how in FIG. 12, the distance between the two empirical PDFs (as measured by the JSD) remains very low (below 2×10⁻³) for tentative skews ranging almost to 2 parts-per-million (i.e., 2000 parts-per-billion). Next, assuming an estimate for the PDV sequence is ready to be used, the procedure goes as follows. For each proposed statistical model, model fitting is performed (e.g., Maximum-Likelihood, Bayesian) and the goodness-of-fit is tested (e.g., Chi-Squared test). Finally, choose the model that best fits the PDV sequence (e.g., with the lowest Chi-Squared score) and continue on to determining the corresponding skew/phase estimation algorithm and observation window length. If no model is an appropriate fit to the PDV sequence (e.g., all Chi-Squared scores are too high), a decision can be made as to whether to use a certain default skew/phase estimation algorithm or wait until the PDV data is recognized.

Given a certain statistical model, the method must next choose the most appropriate algorithm, as described above. Thus, for a particular type of PDV statistics (namely, a given statistical model, as represented by a set of parameters such as mean and variance for the Gaussian case), all available skew/phase estimation algorithms must be evaluated such that the minimum window length that guarantees a “pass” in terms of accuracy is determined. This can be done using computer simulations, for example. Practically speaking, this means that from a given set of parameters as returned by the statistical modeling described above (see, e.g., FIG. 14), the most appropriate algorithm can be detected.

Next, the sets of parameters must be correctly mapped to the correct window length. The number of parameters, which might be large (e.g., mixtures of distributions), must map to a single number that represents the required window length. In the event computer simulations have been performed, only a finite amount of data points attempting to cover the range of all parameters of the modeled distribution will have been taken. However, in a non-simulated situation, the modeled distribution will have parameters that do not exactly correspond to the ones sampled during the simulations.

In this situation, multiple solutions may be available. For example, the multiple solutions may include using a clustering algorithm such as the K-means algorithm, or the EM clustering algorithm to first map the observed modeled vector to the closest known one. Results from vector quantization theory can also be used. Alternatively, a pre-trained mapping function (e.g., a pre-trained neural network) may be used without prior clustering/quantization. For example, FIG. 15 shows an example of a curve that might be obtained from a 2-parameter distribution. Training a two-layer feedforward neural network with four hidden neurons and a hyperbolic tangent activation function yields a maximum error of 0.04 over all training data.

Unfortunately, it is possible that the window length suggested by the above method is in fact lower than the value of M (i.e., the minimum amount of timestamps for a stationarity check), which means that these operations have been wasted. This is why, as explained hereinbelow, a continuous PDV variance tracking system can be useful as an alternative.

As shown by FIG. 16, methods of packet-based synchronization in non-stationary networks 100 include determining a time interval for when operations will be performed to check the stationarity of a packet delay variation (PDV) sequence derived from timestamps transmitted in packets between master and slave devices in a packet network, Block 102. Upon initialization, selected algorithms for performing skew/phase estimation in a master-to-slave direction and slave-to-master direction are reset along with a global algorithm choice, which, during network operation, represents the algorithm ultimately chosen for a skew/phase estimation operation. Subsequent to initialization, timestamps are continuously accumulated, as they arrive, in both directions across the packet network (master-to-slave and slave-to-master), Block 104. As timestamps are accumulated, a continuous check is performed (in both directions) to determine whether enough timestamps have been accumulated to compute a valid PDV sequence (or perform a skew/phase estimation), Block 106. If “yes” for a given direction, then operations are performed to check stationarity, Blocks 108-110. As described hereinabove, in some cases, location and skew independent statistics can be used to more simply determine whether or not a PDV sequence is stationary. For example, a skewed and translated version of the PDV sequence can be extracted for purposes of stationarity checking, as explained above with respect to Equations 9-10. Alternatively, a stationarity check can be performed using more complex algorithms that require a full extraction of a PDV sequence using, for example, probability density functions, as described above with respect to Equations 11-12.

As shown by Block 114, assuming the PDV for the selected direction is stationary, then a check is made to determine whether an algorithm for modeling PDV statistics has been previously selected for the given direction. If the answer to the check is “no,” then the PDV sequence is extracted for the accumulated timestamps in the selected direction (if not already) and the PDV statistics are modeled, Block 116. Thereafter, as illustrated by Block 118, an appropriate algorithm given the circumstances associated with the PDV statistics is selected and set as a direction-based algorithm suggestion. As shown by Block 120, if the algorithm identified at Block 118 is more appropriate than a previously set global algorithm choice, if any, then the previously set global algorithm choice is replaced by the currently more appropriate direction-based algorithm suggestion. As described herein, the algorithm suggested by each direction is treated as a directional algorithm suggestion, while the global algorithm choice represents the current algorithm actually used for skew/phase estimation, as shown by Blocks 122-124. After the skew/phase estimation operations illustrated by Block 124 are performed, the global algorithm choice and any prior direction-based algorithm suggestions are erased and control is returned to Block 104, where the above-described operations are repeated. These reset operations of Block 126 are similar to the direction-based operations of Block 112, which include a selective reset of a direction-based algorithm suggestion for the current direction (and possibly a related global algorithm choice), which is responsive the non-stationarity finding at Block 110, and a switch to an alternative direction-based algorithm suggestion, if any, prior to return to and repeat Block 104.

Although not wishing to be bound by any theory, it is possible that the number of packets set for the stationarity/PDV check is actually larger than what the selected algorithm actually requires. This type of situation, in which time is essentially wasted, often occurs when the variance of the PDV is very small to begin with (e.g., in situations where the network has virtually no traffic). To remediate to this situation, one can envision various solutions. These solutions include using a free-running online variance estimator, which can be done by averaging the sample variance of small blocks of timestamps. If the variance is found to be low enough, the operations described hereinabove may be interrupted and the skew/phase can be directly calculated and corrected. Another solution includes reserving a relatively small number of at startup, from which the PDV variance is estimated. If it is found to be small enough, the skew/phase is directly calculated and corrected. This “direct” calculation method can be carried out with a very simple skew/phase estimator. For example, when there is very little PDV, algorithms such as the Least-Squares algorithm can be safely applied.

The above-described frequency synchronization operations, which are preferably performed to levels of less than about 1 or 2 ppb upon startup, can be followed by operations to precisely control phase adjustments so as to keep any timing error below 1 psec. These latter operations may utilize a special set of rules to ensure that time-of-day (ToD) values remain as low as possible and are robust to packet delay variation (PDV) sequence changes.

In particular, once the frequency of the slave device is adjusted to sufficiently close to the frequency of the master device for a given application, the following high-level operations may be performed:

-   -   (i) While continuously collecting timestamps associated with         corresponding packets (a/r/t/a “packets” herein), periodically         (e.g., every M packets) check the stationarity in both         directions over the last N≧M collected packets;     -   (ii) Flush (or tag as “unusable”) the non-stationary data;     -   (iii) If both master-to-slave and slave-to-master directions are         non-stationary, then, if possible, stabilize the phase;     -   (iv) If at least one direction is stationary, determine, based         on the data that has been gathered, what ToD estimation         algorithm can be used, and how many additional         timestamps/packets will be required in a downlink/uplink         direction, as explained hereinbelow. The algorithm choice may         change frequently (e.g., every M packets) as an understanding of         the packet distribution improves as more packets are collected;     -   (v) If the required additional timestamps/packets in the         downlink/uplink direction is zero and a ToD estimation algorithm         has been chosen, apply the ToD estimation algorithm and correct         the phase, then flush all the timestamps/packets that have         already been acquired. If not, then continue collecting         timestamps/packets and repeat the operations above beginning at         (i).

The stationarity check operations consist of verifying whether the sequence of timestamps/packets collected is stationary, that is, its joint probability distribution does not change over time. An additional stationarity checking operation relative to those described above includes estimating, for a set of timestamps indexed by k in {1 . . . N}, successively the slope of T₂(k) vs T₁(k) (or T₄(k) vs T₃(k) if considering the uplink direction) on several different segments within {1 . . . N}. In one embodiment of the invention, three slopes σ₁, σ₂, and σ₃ are computed on [1 . . . 2N/3], [N/3 . . . N], and [1 . . . N], respectively. Next, a measure of the variability of σ_(i) is evaluated and compared to a predefined threshold. One measure of variability can be determined by evaluating the maximum absolute difference between any two of σ₁, σ₂, and σ₃. If this variability is larger than the threshold, then the PDV in {1 . . . N} is treated as non-stationary. These somewhat ad-hoc operations can be quite robust to the type of non-stationarity occurring due to PDV.

One facultative step consists of a type of normalization as follows: T ₂ ′=αT ₂+(1−α)T ₁  (13) where α can be a function of the measured spread of T₂−T₁.

The σ_(i) slopes can then be computed on T₂′(k) vs T₁(k) (or T₄′(k) vs T₃(k)). This normalization can be useful if the PDV is very large, in which case the slopes σ_(i) would have a large variability even in stationarity. An example of normalization performed on a sequence of packets is shown in FIG. 17 below.

If the sequence of collected packets indicates a stationary PDV, then the next operations consist in deciding what type of ToD estimation algorithm can be applied and how. An estimate for the probability density function (pdf) of the PDV may be analyzed for each incoming window of packets. By definition, assuming a perfect frequency, the following sequences are a translated-version of the PDV sequences from Master to Slave and Slave to Master, respectively: u(k)=T ₂(k)−T ₁(k)  (14) v(k)=T ₄(k)−T ₃(k)  (15)

Characteristics (e.g., statistics) of the PDV distributions (e.g. mean, minimum, maximum, mode, etc) are tracked over time, and possibly the full probability density function (PDF) up to translation (because u(k) and v(k) are only a translated version of the PDV sequence). These characteristics/quantities are recorded and a history of them is maintained. With this information, a search is made for the most “easily trackable” quantity as inferred from the pdf reading (i.e., a quantity that can be measured accurately enough and with a small amount of packets). Many techniques can be used to determine whether a certain quantity is easily trackable. For example, typically if the probability density function (PDF) is “exponential-like”, then with sufficient packets, it should be possible to measure at least one packet that is very close to the minimum. For other types of distributions (still including exponential-like distributions) and with sufficient packets, it should be possible to get an accurate estimate for the mean and may even be more advantageous to track the minimum, if possible. In this example, the “exponentiality” of arbitrary distributions may be deduced from the parameters of a statistical model, such as an Exponential+Gaussian mixture as shown in FIG. 18. One of the parameters of this distribution is the proportion of each component (Gaussian or exponential). A Maximum-Likelihood (ML) fit of this distribution can be performed using an Expectation-Maximization (EM) algorithm, for example. The larger the exponential proportion, the more the distribution lends itself to minimum-tracking.

Depending on the model distribution chosen, the amount of packets required in each case can be mathematically determined and will be an important factor in deciding which solution to choose. Going back to the Exponential+Gaussian model again and letting α and d be the proportion and mean of the exponential component in the mixture, respectively, then the probability of observing a packet with delay x less than τ is:

$\begin{matrix} {{p\left( {x < \tau} \right)} > {\alpha\left( {1 - {\exp\left( {- \frac{x}{d}} \right)}} \right)}} & (16) \end{matrix}$ Therefore, the probability P_(M) of observing at least one packet with delay less than τ in M observations is:

$\begin{matrix} {P_{M} > {1 - \left\lbrack {1 - {\alpha\left( {1 - {\exp\left( {- \frac{\tau}{d}} \right)}} \right)}} \right\rbrack^{M}}} & (17) \end{matrix}$ With this type of calculation, it is simple to decide of an appropriate value for M so as to ensure a probability that is superior to 90 or 95%, for example. If the distribution does not lend itself well to minimum tracking (e.g., if it is not exponential-like but instead is Gaussian-like), there may be a discernible mode or maximum in the distribution or, alternatively, the distribution's mean or its robust mean may be tracked. In the case of mean tracking, it's typically necessary to determine an appropriate value of M such that the mean is captured within an error of ±τ with probability of higher than 90 or 95%, for example.

This is a classical “confidence interval” statistical question, which can be resolved multiple ways. A convenient way is to assume that the sample standard deviation of the sequence is equal to the true standard deviation and that the sample mean is normally distributed. This is reasonable given the central limit theorem (CLT) which states that, given certain conditions, the arithmetic mean of a sufficiently large number of iterates of independent random variables, each with a well-defined expected value and a well-defined variance, will be approximately normally distributed. That is, suppose that a sample is obtained containing a large number of observations, each observation being randomly generated in a way that does not depend on the values of the other observations, and that the arithmetic average of the observed values is computed. If this procedure is performed many times, the central limit theorem says that the computed values of the average will be distributed according to the normal distribution (commonly known as a “bell curve”). Accordingly, if σ is the sample standard deviation, then the probability P_(M) that the sample mean is within ±τ of the true mean is:

$\begin{matrix} {P_{M} = {{erf}\left( \frac{\tau\sqrt{M/2}}{\sigma} \right)}} & (18) \end{matrix}$

In typical situations, the required amount of samples M to track the mean of an arbitrary distribution will be significantly larger than that required to track the minimum of an exponential-like distribution, in part because with lower traffic loads the distribution is naturally more exponential and has a smaller variance. For example, for an Exponential+Gaussian PDV distribution with exponential proportion 0.4, τ=200 nanoseconds, and d=8 microseconds, only 250 packets ensure that an appropriate packet is seen with about 92% chances. In the same network, suppose a Gaussian-like distribution occurs with a mean and standard deviation of 40 and 10 μsec, respectively. The Gaussianity of this distribution makes it impossible to use a minimum tracking solution. In that case, collecting 4000 packets will only make sure that the captured mean is within 200 nanoseconds of the true mean 80% of the time. This shows that when tracking the mean, increasing τ is probably wise (e.g., for a threshold of 500 nanoseconds, only 850 packets are required to ensure an accurate enough mean 85% of the time). Moreover, as described more fully hereinbelow, depending on the type of phase adjustments, in practical cases the probability does not need to be exceedingly high so long as the correct direction of phase adjustments is being pursued with a probability of at least greater than 0.5, for example.

Thus, in general, this type of statistical analysis can be applied to a variety of assumed distributions. For example, as described hereinabove, once a string of packets is available, one can choose which distribution is the most appropriate by resorting to χ² tests. If multiple distribution models are valid, the solution that requires the least amount of packets should be chosen.

The relative and absolute time-of-day (ToD) corrections described hereinbelow assume a frequency skew that is sufficiently small over the packets observation window and further assume the phase drift is small relative to a maximum tolerable error. The “relative” and “absolute” ToD corrections may be distinguished as follows. In “relative” tracking, the goal is to reduce the difference between the current ToD and a previously seen/recorded ToD. In “absolute” tracking, the goal is to reduce the ToD to zero (0).

In particular, when dealing with relative ToD corrections, the ultimate goal is to maintain the ToD to a certain previously-recorded reference by reducing as much as possible the difference between the current ToD and a “previous” ToD. Being “recorded” means that the quantities to be tracked were measured and saved at a certain reference time. The ToD may not be known during the recording of the reference. However, if the ToD was known to be zero or sufficiently small during the recording of the reference, then this type of tracking becomes absolute. Assume that during the current observation window, the quantity to be tracked is the same as during the recording of the reference. This is often the case for the minimum throughout the entire lifetime of the deployed system (as there is a minimum physical transit delay), but it may be that the PDV sequence distribution (a/k/a PDV distribution) is currently identical to a previously seen PDV distribution, in which case it's possible to retrieve the reference quantity. Let g{·} denote the function which, when applied to the sequences u(k) or v(k), will return the desired quantity to be tracked (e.g., g{·} can be the minimum, the mean, etc). The function g{·} may have many shapes. For example, in some embodiments of the invention, g{·} is the mean of the sequence u(k) or v(k) once these sequences have been pre-filtered to remove outliers (e.g., using the M-estimation operations disclosed in the aforementioned commonly-assigned U.S. application Ser. No. 14/015,573, filed Aug. 30, 2013, in which case the quantity to be tracked is a “robust mean”).

During the recording of the reference, if U_(g) ^(ref) (respectively V_(g) ^(ref)) are the quantities measured and δ_(ref) is the absolute ToD at that time, then: δ−δ_(ref) =g{u(k)}−U _(g) ^(ref)  (19) δ−δ_(ref) =V _(g) ^(ref) −g{v(k)}  (20) Even if δ_(ref) is not known, Δ=δ−δ_(ref) represents the difference between the previously recorded ToD and the current ToD. Choosing between the two directions would depend on multiple factors, including the direction that requires the least amount of packets, the direction that is available to begin with, and whether the PDV sequence in one of the directions can be recognized such that the tracking can become absolute, etc. If both directions are available and nearly-equivalent amounts of packets are required, then one can combine the two estimates together as:

$\begin{matrix} {{\delta - \delta_{ref}} = {\frac{1}{2}\left( {{g\left\{ {u(k)} \right\}} - {g\left\{ {v(k)} \right\}} - \left( {U_{g}^{ref} - V_{g}^{ref}} \right)} \right)}} & (21) \end{matrix}$ The above formula assumes that the ToD during the recording of each reference was the same.

Next, when dealing with absolute ToD correction, which is a special case of relative tracking for which the reference ToD (δ_(ref)) is known to be zero, Eqns. (19) and (20) are still very much applicable along with additional formulae. For a symmetric network (with the same “floor” (i.e., minimum) delay in both directions), in the case where g{·} is the minimum function, then δ_(ref)=0 necessarily implies that U_(g) ^(ref)=V_(g) ^(ref)=D, where D represents the common floor delay. Therefore, if D is known, then the two following equations are valid: δ=min{u(k)}−D  (22) δ=D−min{v(k)}  (23) If D is unknown but the PDV sequence in both directions lends itself well to minimum tracking, then due to the network's symmetry the above two equations may be combined to obtain a special case of Eqn. (21):

$\begin{matrix} {\delta = {\frac{1}{2}\left( {{\min\left\{ {u(k)} \right\}} - {\min\left\{ {v(k)} \right\}}} \right)}} & (24) \end{matrix}$ In the above situation, D can also be deduced if it is unknown (or refined if it is known), with:

$\begin{matrix} {D = {\frac{1}{2}\left( {{\min\left\{ {u(k)} \right\}} + {\min\left\{ {v(k)} \right\}}} \right)}} & (25) \end{matrix}$ However, if the network is not symmetric, then the above equations can be extended as well by introducing two distinct values for D. Similar results can be written for other types of quantities. For example, if g{·}=E{·} computes the mean, then the means μ_(DL) and μ_(UL) of the PDV sequence in the downlink and uplink directions are known. Plugging in Eqn. (21):

$\begin{matrix} {\delta = {\frac{1}{2}\left( {{E\left\{ {u(k)} \right\}} - {E\left\{ {v(k)} \right\}} - \left( {\mu_{DL} - \mu_{UL}} \right)} \right)}} & (26) \end{matrix}$

Accordingly, once enough packets have been collected for a stationarity check, using the operations/concepts described hereinabove the following operations can be undertaken in accordance with embodiments of the invention. First, the stationarity check determines which of the downlink (i.e., master-to-slave) and uplink (i.e., slave-to-master) directions is usable at all. Second, the list of trackable quantities is evaluated and each is associated with a possible correction type (absolute vs. relative) and a determination of an amount of packets required. Then, if absolute correction is possible, choose the solution that requires the least amount of accumulated packets. For example, if it's feasible to do an “absolute minimum tracking” in the uplink direction with 500 packets and an “absolute mean tracking” in the downlink direction with 2000 packets, then the former would be chosen and the ToD estimator would apply Eqn. (23) once 500 packets have been collected. Next, if relative correction is possible but absolute correction is not, the solution that requires the least amount of packets is chosen. Finally, if no solution is currently possible then continue collecting packets and wait until the next stationarity check. If this cycle happens multiple times without solution, then it is recommended to perform phase “stabilization” as explained more fully hereinbelow.

Operations will now be described that support initial phase adjustment and phase adjustments associated with large skew and/or over long windows. The first/initial phase adjustment is particular, as the frequency may not have been corrected yet and/or it might be advantageous to do a frequency correction coupled with a phase correction in order to save time. A similar situation may also occur during normal run times. For example, even if the frequency skew is not very large, it may be necessary to collect packets for a long time (e.g., several minutes) in order to achieve a desired precision. In addition, while the impact of a small fractional frequency offset on the observed PDV statistics is negligible over a small observation window, it is less and less the case as the observation window grows. In other words, the assumption highlighted above that the frequency skew is sufficiently small over the packets observation window is not necessarily always met.

Assume then, that after collecting N packets, both frequency and phase correction are to be performed. As soon as the last packet is received, a frequency estimation takes place and it is determined that the frequency skew has been σ over the observation window, as explained more fully hereinabove. To avoid further drifting, the frequency correction is applied. This correction assumes that at least one direction is stationary (otherwise σ cannot be determined without more tracking). Moreover, a preprocessing step may be performed on the collected data to make it appear as if it had been collected with a very small skew. In particular, instead of using Eqns. (14) and (15) to obtain u(k) and v(k) as explained previously, the following relationships can be used with the recognition that the end point index N may be different in each direction: u(k)=T ₂(k)−σT ₁(k)+(σ−1)T ₁(N)  (27) v(k)=σT ₄(k)−T ₃(k)−(σ−1)T ₄(N)  (28) FIGS. 19-20 illustrate the effect of these equations in a particular situation, where the stamps preprocessing (“unskewing”) effect on the first 5000 stamps collected in a 10-hop network with 80% traffic load on the downlink direction and 20% traffic load on the uplink direction is observed (and where the initial skew was 250 ppb).

Following the application of Eqns. (27) and (28), operations are performed to chose a preferred ToD estimation algorithm. If the design constraint allows, at the first correction it is recommended to apply an “abrupt” or “instantaneous” phase correction, especially if the skew σ was large, so that it does not take too long to reach a locked state. In fact, if there is a high degree of confidence in the determination of the frequency skew, then Eqns. (27) and (28) can be used instead of Eqns. (14) and (15) even if the frequency skew is not very large. But, such substitution typically causes an increase in the computational load associated with the ToD estimation operations by a non-negligible amount (as this implies hundreds of multiplications).

As will be understood by those skilled in the art, once the ToD has been estimated, there are multiple ways to drive a device's oscillator in order to physically reduce and maintain the ToD, notwithstanding the fact that a sequence of estimated ToDs is typically noisy (because there is a certain degree of uncertainty associated with each estimate). This part of the estimation problem can be treated as a control system problem, which lends itself well to “Proportional-Integral-Derivative” types of controllers, combined or not with further sequential filters such as the Kalman Filter.

There are two types of ToD corrections that can be made. These include “Instantaneous ToD/Phase Snaps” and “Continuous ToD/Phase Drifts.” Instantaneous ToD/phase snaps can be made typically with zero or small skew in between. This results in a type of “staircase” time-error graph. The main drawback is that this type of correction may not be allowed in practice unless there is a frequency correction scheme running in the background so as to maintain a very good frequency between consecutive corrections. Without appropriate filtering, this type of solution may be more risky with large uncertainties as the phase may instantly fail. Continuous ToD/phase drifts purposely use non-unity frequency skew, which is typically modified once at every correction, producing a time-error graph similar to the one shown in FIG. 21. The solution resorting to continuous phase drifts must be carefully devised but can produce very good results.

For low-to-moderately high amounts of uncertainties in the sequence of estimated ToDs, a well-tuned PID-type controller typically works well. Alternatively, ad-hoc procedures can be devised such as an algorithm for controlled continuous ToD reduction shown in TABLE 1 below.

TABLE 1 Keep track of the “phase direction”, a variable which can take three states (not moving, increasing, or decreasing). Keep track of the latest flux-flow oscillator (FFO). Let Δ_(k) = δ_(k) − δ_(k−1) be the difference between the current ToD estimate δ_(k) and the previous ToD estimate δ_(k−1). Decide on the value of three fixed parameters: 1. Δ_(Thresh): if Δ_(k) is absolutely smaller than Δ_(Thresh), conclude that the phase is not moving 2. δ_(H): if δ_(k) is absolutely larger than δ_(H), then a correction is needed if the phase is not going in the right direction (i.e., the direction that will further reduce the phase) 3. δ_(L): if δ_(k) is absolutely smaller than δ_(L) and the phase is moving in the right direction, then reduce the descent rate Then, for every incoming ToD estimate δ_(k), do the following: 1. Determine the phase direction: If |Δ_(k)| < Δ_(Thresh), the phase is not moving Else: If Δ_(k) > 0, the phase is increasing - check if it is increasing too fast (*) Else, the phase is decreasing - check if it is decreasing too fast (*) 2. Apply ToD corrective action: If δ_(k) > δ_(H) and the phase is not already decreasing, reduce the FFO and set the phase to decreasing If δ_(k) < −δ_(H) and the phase is not already increasing, increase the FFO and set the phase to increasing If |δ_(k)| < δ_(L), then if possible, stabilize the phase; if not reduce the descent rate (e.g., if decreasing, increase rate by small amount)

For higher uncertainties (e.g., for tracking the mean of complex PDV sequences) the estimation problem is more challenging because: (i) corrections may not occur very often, possibly only every few minutes; (ii) each ToD estimate may not be very accurate; and (iii) there is no way to precisely know when the next correction will take place. If the ToD estimates are too “noisy” to be usable as in the above context, an alternative solution is to consider only their sign, which is easier to determine accurately. Then, if a high precision flux-flow oscillator (FFO) estimate is maintained and a reliable frequency source can be used, a controlled ToD reduction can still be achieved, at the possible cost of a somewhat slower convergence. One example of such an estimation algorithm for controlled continuous ToD reduction under high uncertainties is shown by TABLE 2. If the estimated ToD is low enough (e.g., lower than 300 ns), then the FFO correction will stabilize the phase drift.

TABLE 2 Keep track of the latest FFO. Let F_(k) denote the inverse of the current FFO (i.e., the FFO which, if applied, will result in a unit frequency skew). Let K_(δ) _(k) be a positive function of the magnitude of the estimated ToD δ_(k), homogeneous to a FFO in ppb. For example: $K_{\delta_{k}} = \left\{ \begin{matrix} 1.25 & {{{if}\mspace{14mu}{\delta_{k}}} > {1.5\mspace{14mu}{us}}} \\ 0.75 & {{{if}\mspace{14mu} 300\mspace{14mu}{ns}} < {\delta_{k}} < {1.5\mspace{14mu}{us}}} \\ 0 & {otherwise} \end{matrix} \right.$ Then, for every incoming ToD estimate δ_(k), do the following: The FFO correction F_(k) to be sent is calculated as: F_(k) = −sign(δ_(k)) × K_(δ) _(k) + F_(k)

TABLES 1 and 2 identify several areas in which it is recommended to “stabilize” the phase, if possible. Practically speaking, it means the frequency skew can be set to a value that is very close to unity at any time. To do so, certain conditions must be met, which include a requirement of a very stable oscillator (e.g., an oven-compensated crystal oscillator) and some additional circuitry and computational devices to continuously estimate the frequency skew. A near-ideal frequency source may be available if the device is Synchronous Ethernet (SyncE) compliant.

Additional situations where phase stabilization is recommend (e.g., beyond those described in TABLES 1-2) include those where a servo encounters non-stationarity in both directions. This ensures that the phase will not drift too far away from zero (0) while more packets are collected. Additional situations include when the servo determines that a large amount of packets need to be collected to achieve an acceptable precision, and in cases where PDV sequence recognition is necessary.

A desirable feature of a clock servo is to be able to detect when a so-called packet reroute has occurred and, of course, what to do in that often frequent situation. During a reroute event, packets are abruptly directed to follow a different route than before the event due to network failures and management algorithms, for example. There are multiple effects of reroutes on PDV sequences. Most notably, the floor delay D and the distribution of the PDV sequence will both change, even for the same traffic load. As will be understood by those skilled in the art, one non-specific symptom of reroutes would be a perceived non-stationarity, reflecting a change in PDV statistics. It is proposed to declare a reroute if, following the detection of a non-stationarity, either of the following occur:

-   -   (i) the floor delay D is found to have changed by more than a         predetermined threshold; and     -   (ii) the estimated ToD is at least once (but maybe several times         in a row) calculated to be much different than physical         boundaries could ever allow. For example, suppose that the last         few calculated ToDs have been below 200 ns, and the FFO is known         to be smaller than 5 ppb. In this example, after 2 minutes of         collecting packets, the phase can only physically have drifted         by 800 ns. Suppose now that after these 2 minutes of packet         collection, the ToD estimation algorithm returns a value of 5         us. The only physical explanation for this (besides the         hopefully rare calculation mistake) is a reroute.

Operations to incorporate prior and new knowledge of ToD corrections may be understood by rewriting Eqns. (19)-(21) as: δ−δ_(ref) =g{u(k)}−U _(g) ^(ref)  (29) δ−δ_(ref) =V _(g) ^(ref) −g{v(k)}  (30)

$\begin{matrix} {{\delta - \delta_{ref}} = {\frac{1}{2}\left( {{g\left\{ {u(k)} \right\}} - {g\left\{ {v(k)} \right\}} - \left( {U_{g}^{ref} - V_{g}^{ref}} \right)} \right)}} & (31) \end{matrix}$

As described above, to perform accurate ToD corrections, it is typically necessary to retrieve reference quantities U_(g) ^(REf) and V_(g) ^(ref). In certain subcases (e.g., g{·} is the minimum and the PDV sequences in both directions lend themselves to minimum tracking), then U_(g) ^(ref) and V_(g) ^(ref) can be estimated “on the spot” and do not need to be retrieved. In general though, provided the PDV sequence currently being observed has a distribution that has been “seen” before (i.e., the current distribution is sufficiently close to one that has been seen before), and appropriate references have been recorded accordingly, two steps are required. The first step includes recognizing the distribution of the most current PDV sequence from among the distinct PDV sequence's distributions seen before to determine if there is a match. This first step can include checking which PDV distribution in a continuously updated library of distributions is closest to the current PDV distribution (e.g., closest in distance, such as Euclidean distance, as measured between two signature vectors). The second step includes retrieving the appropriate quantities U_(g) ^(ref) and/or V_(g) ^(ref) for a given g{·} (there might be more than one function available). This is illustrated by Eqn. (26), where the means of the PDV sequences in each direction must be retrieved.

The task of recognizing PDVs is not trivial because it's necessary to distinguish each amongst possibly many others via a translated (and possibly slightly skewed) representation or a signature of it. Moreover, the recognition operations must be done as quickly as possible (i.e., with as few samples as possible), such that the PDV can be recognized at least as fast as the tracking of any quantity (the mean, for instance). There are multiple ways to handle this. Obviously, the PDV's signature cannot depend on the quantity that is being tracked. In particular, because, at best, access is only available to a translated version of the PDV (e.g., for unity skew), the PDV's signature cannot depend on location-depend statistics such as the mean, the minimum, the mode, or the maximum. Instead, the following can all be part of the chosen PDV “signature vector”:

-   -   (i) the standard deviation or the variance;     -   (ii) the mean/median absolute deviation from the mean/median;     -   (iii) the skewness (e.g., the third standardized moment), which         can also be shown to be independent of the frequency skew;     -   (iv) the full empirical discrete probably density function (pdf)         (constructed from a histogram with a certain predefined amount         of bins, and normalized such that the first bin begins at 0);     -   (v) the kurtosis; and     -   (vi) the parameters of arbitrary statistical fits for the         observed PDV (because access may only be available to a         translated version of the PDV, the observed sequence may be         normalized such that its minimum is zero or an arbitrary fixed         value.         All the signature vectors may be stored/read as needed in a “PDV         dictionary”, which can be consulted to retrieve the         corresponding trackable quantities—at the very least, the mean,         upon recognition.

Operations to recognize PDV signatures are compatible with the other techniques and operations described herein. For example, as described previously, while collecting packets all the trackable quantities are regularly listed to see how many packets are needed to accurately capture them. Whether a dictionary of PDV signatures is already available or not, as soon as it is determined that coming up with an accurate-enough capture will take a “long time”, the phase should be stabilized before further collecting packets. The definition of “long time” means: “enough time for the phase to drift close to predetermined maximum time-error, given apriori knowledge of the frequency skew”. Moreover, if the phase is not stabilized and the statistics must be analyzed over a long window, then even a small fractional frequency offset can have a non-negligible impact on the accuracy of the tracked quantity. The packets already collected up to that point can be unskewed as well so that they can be used to characterize the quantity to be tracked.

Once enough packets are collected for at least one quantity for be accurately captured, the PDV recognition scheme takes place (this is why it is important that the signatures are designed in such a way that the PDV can be recognized at least as fast as the time it takes to accurately capture the quantity to be tracked). The observed (translated) PDV sequence is then analyzed so that its signature vector can be extracted and compared to previously captured signatures. The comparison can be done in many ways including vector quantization, for example. Because it may be necessary to stabilize the phase often, the controlled phase drifts are only meant to occur between the correction time and the time of the next recognition of the PDV. While this limits the convergence time, it also makes the algorithm more robust once locked.

If the PDV recognition step is fruitless because the distance between the current PDV's signature vector and the ones in a stored dictionary is too large, then a new dictionary entry associated with the current PDV's signature will be recorded. Alternatively, if the PDV in only one direction was recognized (or the PDV in one direction was adequate for minimum tracking for instance) but not in the other direction, enough packets may have been accumulated to record an entry for the other direction's unknown PDV (in this case, the reference ToD will also be known, which can be compensated for).

As will be understood by those skilled in the art, the whole signature must be recorded and, of course, the corresponding quantity that was just tracked. Moreover, if the value δ of the ToD is now known (e.g., because the ToD was close to 0 at the last correction and has remained stabilized, or it is known from the other direction's information), it must be compensated for as follows. Thus, if U_(g) or V_(g) are the quantities that were measured (e.g., the mean or the mode) and the ToD (i.e., δ) is known as well, then it follows directly from the previously presented theory that the references which must be recorded are: U _(g) ^(ref) =U _(g)−δ  (32) V _(g) ^(ref) =V _(g)+δ  (33) The next time a recognizable PDV is encountered while a quantity in the other direction is absolutely tracked (such that δ is known), knowledge can be refined/consolidated. For example, suppose the closest dictionary entry that is found contains the reference U_(g) ^(ref) (or V_(g) ^(ref)), and U_(g) ^(ref) ^(_) ^(new) (or V_(g) ^(ref) ^(_) ^(new)) is currently being measured and is assumed to have been compensated by δ as in Eqns. (32) and (33). Then, the new values can be incorporated into the “old” ones in a number of ways (smooth filtering, averaging, etc), which probably penalizes new values as opposed to older ones. Certain PDV dictionary entries may also be required to not undergo change for any reason (e.g., from network recordings of the PDV done offline).

When building and maintaining a PDV signature dictionary, there are two cases to consider: (i) either access to some PDV data is available a priori, or (ii) learning must be performed on-the-fly as the algorithm is running and encountering new PDVs. Regarding the recording of new PDVs, each signature vector in the PDV dictionary should be distant enough so as to avoid confusion and prevent the writing of multiple entries that actually correspond to the same PDV. This distance requirement is a crucial design parameter, which must be carefully chosen. When building the dictionary from offline data (i.e., from recordings of the network made prior to deployment), a number of techniques can be deployed. The central problem, given a sequence of delays, can be divided into the following subtasks: How many entries are required (how many distinct PDVs are seen)? Which quantities must be tracked for each entry? Can an algorithm be devised to automatically build a dictionary?

In the drawings and specification, there have been disclosed typical preferred embodiments of the invention and, although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation, the scope of the invention being set forth in the following claims. 

That which is claimed is:
 1. A method of performing time-of-day synchronization in a packet processing network, comprising: accumulating timestamps transmitted in packets between master and slave devices, which are synchronized with respective master and slave clocks; determining whether first timestamps accumulated in a first direction across the packet network demonstrate that a first packet delay variation (PDV) sequence observed from the first timestamps is stationary; adjusting a phase offset between the master and slave clocks using a time-of-day estimation algorithm, said adjusting comprising determining a location-dependent statistic of the first PDV sequence; and comparing a distribution of the first PDV sequence against distributions associated with a library of stored PDV sequences to determine a match therebetween.
 2. The method of claim 1, wherein said comparing comprises determining a distance between a signature vector associated with the first PDV sequence and at least one signature vector associated with a stored PDV sequence in the library.
 3. The method of claim 1, wherein said comparing comprises determining a location-independent statistic of the first PDV sequence.
 4. The method of claim 3, wherein the location-independent statistic is selected from a group consisting of a standard deviation, a variance, a mean absolute deviation from the mean, a skewness, a full empirical discrete probability density function and a kurtosis.
 5. The method of claim 4, wherein the location-dependent statistic is selected from a group consisting of mean, minimum, maximum and mode.
 6. The method of claim 1, wherein the location-dependent statistic is selected from a group consisting of mean, minimum, maximum and mode. 